package com.mas.common;
public class Consts 
{
	/**
	 * Resources Names
	 */
	public static final String RESOURCE_AMOUNT_TO_BUY = "AMOUNT"; 
	public static final String RESOURCE_START_TIME = "START_TIME";
	public static final String RESOURCE_END_TIME  = "END_TIME";
	public static final String RESOURCE_NET = "NET";
	public static final String RESOURCE_AVG_suffix = "_AVG";

	/**
	 * Resources Max Allocations Values
	 */
	public static final double CPU_MaxAllocationValue = 100.0;		// % , percentage value  
	public static final double MEM_MaxAllocationValue = 1000000.0;	// KB, fix value
	public static final double HD_MaxAllocationValue  = 1000.0;		// MB, fix value
	public static final double NET_MaxAllocationValue = 100.0;		// % , percentage value
	
	/**
	 * User Strategy vars values
	 */
	public static final double User_DiscountedFactor = 0.0;
	public static final double User_DiscountedFactorCheangesSize = 0.25;
	public static final double User_pricingFactor = 0.5;
	public static final double Defulte_User_Price_CPU = 4.0;
	public static final double Defulte_User_Price_MEM = 4.0;
	public static final double Defulte_User_Price_HD   = 4.0;
	public static final double Defulte_User_Price_NET= 4.0;
	
	/**
	 * Monitor Strategy vars values
	 */
	public static final double Monitor_DiscountedFactor = 0.0;
	public static final double Monitor_DiscountedFactorCheangesSize = 0.10;
	public static final double Monitor_pricingFactor = 2.0;
	public static final double Defulte_Monitor_Price_CPU = 5.0;
	public static final double Defulte_Monitor_Price_MEM = 5.0;
	public static final double Defulte_Monitor_Price_HD  = 5.0;
	public static final double Defulte_Monitor_Price_NET = 50.0;
	
	/**
	 * Possible responses to proposal
	 */
	public enum Response {ACCEPT, REJECT, PROPOSE_COUNTER};
	public enum InternalState { SEND_CFP, RECIEVE_MSG, DONE };
	/**
	 * User Agent parameters 
	 */
	public static final String AgentType_User = "User";
	public static final String AgentName_User = "User Monitor";
	public static final long DescFalicitatorFinderInterval_msec = 10000; 
	
	/**
	 * Monitor Agent parameters 
	 */
	public static final double AVG_UPDATE_FACTOR = 0.1; //the weight of the new value in update the avg  
	public static final long UpdateMonitorInterval_msec = 10000; 
	public static final long ReleaseResourcesInterval_msec = 300000; //every 5 minutes (300000=1000*60*5msec)  release resources
	public static final String MonitorExeFullPath = "SystemMonitoring.exe";
	public static final String AgentType_Monitor = "Monitor";
	public static final String AgentName_Monitor = "Resource Monitor";
	
	/**
	 * Misc.
	 */
	public static final boolean DebugMode = true;
	public static final int MAX_SESSION_NO = 3;
	public static final String AGENT_LANG = "XML Resource Language";
	public static final Object PROPOSAL_REJECTED_MSG = "Proposal Rejected";


}
